package org.jsola.hr.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.jsola.core.vo.BaseVO;
import org.jsola.hr.entity.EmpSocPlanItemDO;

import javax.validation.constraints.NotEmpty;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

import static org.jsola.core.example.BaseExample.E_GMT_CREATE;
import static org.jsola.core.example.BaseExample.E_GMT_MODIFIED;
import static org.jsola.core.example.BaseExample.E_ID;
import static org.jsola.core.example.BaseExample.N_GMT_CREATE;
import static org.jsola.core.example.BaseExample.N_GMT_MODIFIED;
import static org.jsola.core.example.BaseExample.N_ID;
import static org.jsola.hr.example.EmpSocPlanExample.E_COMPANY_ID;
import static org.jsola.hr.example.EmpSocPlanExample.E_COMPANY_PF_AMOUNT;
import static org.jsola.hr.example.EmpSocPlanExample.E_COMPANY_SOC_AMOUNT;
import static org.jsola.hr.example.EmpSocPlanExample.E_EMP_ID;
import static org.jsola.hr.example.EmpSocPlanExample.E_EMP_SOC_STATE;
import static org.jsola.hr.example.EmpSocPlanExample.E_FAIL_CAUSE;
import static org.jsola.hr.example.EmpSocPlanExample.E_FEEDBACK_FLAG;
import static org.jsola.hr.example.EmpSocPlanExample.E_MONTH;
import static org.jsola.hr.example.EmpSocPlanExample.E_PERSONAL_PF_AMOUNT;
import static org.jsola.hr.example.EmpSocPlanExample.E_PERSONAL_SOC_AMOUNT;
import static org.jsola.hr.example.EmpSocPlanExample.E_SCHEME_ID;
import static org.jsola.hr.example.EmpSocPlanExample.E_SERVICE_COST;
import static org.jsola.hr.example.EmpSocPlanExample.E_TYPE;
import static org.jsola.hr.example.EmpSocPlanExample.E_YEAR;
import static org.jsola.hr.example.EmpSocPlanExample.N_COMPANY_ID;
import static org.jsola.hr.example.EmpSocPlanExample.N_COMPANY_PF_AMOUNT;
import static org.jsola.hr.example.EmpSocPlanExample.N_COMPANY_SOC_AMOUNT;
import static org.jsola.hr.example.EmpSocPlanExample.N_EMP_ID;
import static org.jsola.hr.example.EmpSocPlanExample.N_EMP_SOC_STATE;
import static org.jsola.hr.example.EmpSocPlanExample.N_FAIL_CAUSE;
import static org.jsola.hr.example.EmpSocPlanExample.N_FEEDBACK_FLAG;
import static org.jsola.hr.example.EmpSocPlanExample.N_MONTH;
import static org.jsola.hr.example.EmpSocPlanExample.N_PERSONAL_PF_AMOUNT;
import static org.jsola.hr.example.EmpSocPlanExample.N_PERSONAL_SOC_AMOUNT;
import static org.jsola.hr.example.EmpSocPlanExample.N_SCHEME_ID;
import static org.jsola.hr.example.EmpSocPlanExample.N_SERVICE_COST;
import static org.jsola.hr.example.EmpSocPlanExample.N_TYPE;
import static org.jsola.hr.example.EmpSocPlanExample.N_YEAR;

/**
 * 增减员计划表
 *
 * @author zhr
 */
@EqualsAndHashCode(callSuper = true)
@ApiModel(description = "【增减员计划表】列表展示对象")
@Data
public class EmpSocPlanListVO extends BaseVO {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(notes = N_ID, example = E_ID)
    private String id;

    @ApiModelProperty(notes = N_EMP_ID, example = E_EMP_ID)
    private String empId;

    @ApiModelProperty(notes = N_YEAR, example = E_YEAR)
    private String year;

    @ApiModelProperty(notes = N_MONTH, example = E_MONTH)
    private String month;

    @ApiModelProperty(notes = N_TYPE, example = E_TYPE)
    private Integer type;

    @ApiModelProperty(notes = N_FEEDBACK_FLAG, example = E_FEEDBACK_FLAG)
    private Integer feedbackFlag;

    @ApiModelProperty(notes = N_SCHEME_ID, example = E_SCHEME_ID)
    private String schemeId;

    @ApiModelProperty(notes = N_PERSONAL_SOC_AMOUNT, example = E_PERSONAL_SOC_AMOUNT)
    private BigDecimal personalSocAmount;

    @ApiModelProperty(notes = N_PERSONAL_PF_AMOUNT, example = E_PERSONAL_PF_AMOUNT)
    private BigDecimal personalPfAmount;

    @ApiModelProperty(notes = N_COMPANY_SOC_AMOUNT, example = E_COMPANY_SOC_AMOUNT)
    private BigDecimal companySocAmount;

    @ApiModelProperty(notes = N_COMPANY_PF_AMOUNT, example = E_COMPANY_PF_AMOUNT)
    private BigDecimal companyPfAmount;

    @ApiModelProperty(notes = N_SERVICE_COST, example = E_SERVICE_COST)
    private BigDecimal serviceCost;

    @ApiModelProperty(notes = N_COMPANY_ID, example = E_COMPANY_ID)
    private String companyId;

    @ApiModelProperty(notes = N_FAIL_CAUSE, example = E_FAIL_CAUSE)
    private String failCause;

    @ApiModelProperty(notes = N_EMP_SOC_STATE, example = E_EMP_SOC_STATE)
    private Integer empSocState;

    @ApiModelProperty(notes = N_GMT_CREATE, example = E_GMT_CREATE)
    private Date gmtCreate;

    @ApiModelProperty(notes = N_GMT_MODIFIED, example = E_GMT_MODIFIED)
    private Date gmtModified;

    @ApiModelProperty(notes = "员工姓名")
    private String empName;

    @ApiModelProperty(notes = "增减员计划时间")
    private String planDate;

    @ApiModelProperty(notes = "身份证号")
    private String idCard;

    @ApiModelProperty(notes = "人员类型")
    private Integer postType;

    @ApiModelProperty(notes = "方案名称")
    private String schemeName;

    @ApiModelProperty(notes = "参保城市")
    private String socCityName;

    private Map<String, Object> data;

    @ApiModelProperty(notes = "子项列表")
    private List<EmpSocPlanItemDO> itemList;

}

